package com.act.dao;

import com.act.domain.Employee;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

//员工
public interface IEmployeeDao {
	//登录 
	//往考勤那边加一条记录
	//往session存这个登录人
	Employee login(@Param("jobnum")String jobnum,@Param("password")String password);
	
	//根据 工号或姓名查询员工信息 (模糊查询)
	List<Employee> getEmployeesByEmployeeIdOrName(@Param("status")int status,@Param("jobnum")String jobnum,@Param("name")String name);
	
	//根据离职或在职状态查询员工列表 
	List<Employee> getEmployeeByState(@Param("state")int state);

	//查总记录数
	int getCounts();
	
	//添加员工
	void add(Employee employee);
	
	//修改员工信息
	void update(Employee employee);
	
	//删除员工信息
	void delete(int id);
	
	//获取全部员工(不带分页)
	List<Employee> getAllList();
	
	//修改密码
	void updatePWD(Employee employee);
	
	//根据Id查看员工
	Employee getEmployeeById(@Param("id")int id);
	
	//获取全部员工数据
	List<Map> getAll(@Param("startIndex")int startIndex,@Param("endIndex")int endIndex);

	//根据部门id查看员工
	List<Map> getByDepartId(@Param("startIndex")int startIndex,@Param("endIndex")int endIndex,@Param("departId")int departId);
	
	//根据离职或在职状态查询员工列表 
	List<Map> getByStatus(@Param("startIndex")int startIndex,@Param("endIndex")int endIndex,@Param("status")int status);
	
	//有条件查总记录数
	int getCountsByCondition(@Param("departId")int departId,@Param("status")int status) ;
	
}
